package com.xiaobao.service.impl;

import com.xiaobao.mapper.KaoyanInfoMapper;
import com.xiaobao.pojo.KaoyanInfo;
import com.xiaobao.service.KaoyanInfoService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

//考研信息
@Service
public class KaoyanInfoServiceImpl implements KaoyanInfoService {
    private final KaoyanInfoMapper kaoyanInfoMapper;

    public KaoyanInfoServiceImpl(KaoyanInfoMapper kaoyanInfoMapper) {
        this.kaoyanInfoMapper = kaoyanInfoMapper;
    }

    /**
     * 根据ID获取考研信息
     *
     * @param id 考研信息的唯一标识符
     * @return 返回考研信息对象，如果找不到则返回null
     */
    @Override
    //@Transactional
    public KaoyanInfo getKaoyanInfo(String id) {
        return kaoyanInfoMapper.getKaoyanInfo(id);
    }

    /**
     * 更新考研信息
     * 此方法接收一个KaoyanInfo对象作为参数，该对象包含了需要更新的考研信息
     * 方法通过调用kaoyanInfoMapper的updateKaoyanInfo方法来执行更新操作
     *
     * @param kaoyanInfo 需要更新的考研信息对象
     * @return 返回更新操作是否成功true表示成功，false表示失败
     */
    @Override
    public boolean updateKaoyanInfo(KaoyanInfo kaoyanInfo) {
        return kaoyanInfoMapper.updateKaoyanInfo(kaoyanInfo);
    }

    /**
     * 删除考研信息
     *
     * @param id 考研信息的唯一标识符
     * @return 删除操作的结果，true表示删除成功，false表示删除失败
     */
    @Override
    public boolean deleteKaoyanInfo(String id) {
        return kaoyanInfoMapper.deleteKaoyanInfo(id);
    }

    /**
     * 添加考研默认信息
     * 此方法用于向数据库中添加一条默认的考研信息，用于初始化或重置考研信息
     * 主要目的是在用户或实体记录首次创建或需要重置考研信息时，提供一个标准的起点
     *
     * @param id 实体记录的唯一标识符，用于指定哪条记录需要添加默认的考研信息
     */
    @Override
    public void addDefaultKaoyanInfo(String id) {
        kaoyanInfoMapper.addDefaultKaoyanInfo(id);
    }
}
